Recently, development of a data recording and playback apparatus using an optical disk has been vigorously conducted. When compared with a magnetic disk, the optical disk memory is capable of storing therein a greater amount of data; however, there exists a disadvantage that the recording medium is attended with a high raw error rate. In consequence, there has been generally known a method in which in a recording operation, a check code is added to an information code as data so as to configure a code word such that the code word is recorded as an error detection and correction code on an optical disk, so that in a playback operation, an error of the information code is detected and is corrected by use of the check code thus added thereto. As such an error detection and correction code, attention has been recently given to the Reed-Solomon code with a Hamming or minimum distance being set to about 17, d=17.
In the Reed-Solomon code above, after a parity computation by encoding data is effected as an encoding operation, the data is written in a medium together with the parity such that after reading the data therefrom, a decoding operation is effected on the data, namely, a syndrome computation, an error count estimation, a computation of coefficients for an error location polynomial, an error location computation, and an error value computation are accomplished in a sequential fashion.
In this case, the number of correctable errors is (d-1)/2 (ordinary correction) in a case where the error locations are unknown and is d-1 (erasure correction) in a case where the error locations are known. In addition, when a number L of error positions is known and there also exist errors for which the positions are unknown, the errors for which the maximum number of unknown error positions is t (where t=(d-L-1)/2+L) can be corrected together with the L errors for which the error positions are known.
In an article, "On Decoding BCH Codes", G. David Farney Jr., IEEE Trans. IT-11, pp. 549-557, 1965, there has been introduced, for example, a computing method of .sigma..sub.i,L employed to attain a modified syndrome Tk; however, an algorithm to obtain an error value is considerably complicated. In an item A at page 553 in the article cited above, there is described an example of an algorithm in which, based on the modified syndrome, error positions which have been unknown are obtained so as to compute coefficients of an error location polynomial together with the error location by use of a pointer; thereafter, error values are attained for the error locations or positions which have been unknown so as to obtain error values corresponding to the error locations associated with the pointer.
In general, the iterative or repeating operation is easily adapted to an erasure algorithm, and in a case of a product code often used, codes having a short distance are combined such that an error detection is achieved by use of one of the codes and an erasure correction is effected by use of the other one of the codes. Also, even for codes having a long distance, it is easier to effect the erasure correction after the error locations are obtained.
As described above, the above-cited reference discloses a method of attaining the error value for a case where both errors whose locations are known and errors whose locations are unknown are present; however, it has been known that the amount of computations is greatly increased when the minimum distance of the codes becomes large, and hence realtime correction cannot be effected in practice. In addition, although dedicated hardware may be employed to increase the operation speed, this results in too large an increase in the amount of circuitry to be practical.